// 示例：如何上传头像文件到服务器

// 方式1：使用FormData上传本地文件
function uploadAvatarFile(file) {
    const formData = new FormData();
    formData.append('avatarfile', file);

    return fetch('api/profile/avatar', {
        method: 'POST',
        headers: {
            'Authorization': 'Bearer ' + getToken()
        },
        body: formData
    })
    .then(response => response.json())
    .then(data => {
        if (data.code === 200) {
            console.log('头像上传成功:', data.imgUrl);
            return data.imgUrl;
        } else {
            throw new Error(data.msg || '上传失败');
        }
    });
}

// 方式2：使用Blob/File对象上传二进制数据
function uploadAvatarBinary(binaryData, filename = 'avatar.png') {
    // 将二进制数据转换为Blob对象
    const blob = new Blob([binaryData], { type: 'image/png' });
    
    // 创建File对象（如果需要指定文件名）
    const file = new File([blob], filename, { type: 'image/png' });
    
    // 创建FormData对象
    const formData = new FormData();
    formData.append('avatarfile', file);

    // 使用fetch API上传
    return fetch('/api/system/user/profile/avatar', {
        method: 'POST',
        headers: {
            'Authorization': 'Bearer ' + getToken() // 如果需要token认证
        },
        body: formData
    })
    .then(response => response.json())
    .then(data => {
        if (data.code === 200) {
            console.log('头像上传成功:', data.imgUrl);
            return data.imgUrl;
        } else {
            throw new Error(data.msg || '上传失败');
        }
    });
}

// 使用示例1：上传本地文件
// <input type="file" id="fileInput" accept="image/*">
document.getElementById('fileInput').addEventListener('change', (e) => {
    const file = e.target.files[0];
    if (file) {
        uploadAvatarFile(file)
            .then(imgUrl => {
                console.log('文件上传成功，访问地址:', imgUrl);
            })
            .catch(error => {
                console.error('上传失败:', error);
            });
    }
});

// 使用示例2：上传二进制数据
// 假设我们已经有了二进制数据
const binaryData = new Uint8Array([/* 你的二进制数据 */]);
uploadAvatarBinary(binaryData, 'custom_avatar.png')
    .then(imgUrl => {
        console.log('二进制数据上传成功，访问地址:', imgUrl);
    })
    .catch(error => {
        console.error('上传失败:', error);
    });